<?php
namespace Controller;

require_once dirname(dirname(__FILE__)).'/library/Paginator.php';
require_once dirname(dirname(__FILE__)).'/library/Field.php';
require_once dirname(dirname(__FILE__)).'/library/Filter.php';
require_once dirname(dirname(__FILE__)).'/library/Upload.php';
require_once dirname(dirname(__FILE__)).'/library/functions.php';

class Controller {
    public $name = 'controller';
    public $headerTitle = 'OneImmo';
    
    /**
     * Affiche la vue spécifié
     * @param string $view : Nom de la vue à afficher
     * @param array $variables : Les variables à envoyer dans la vue
     */
    public function displayView($view, Array $variables=array()) {
        ob_start();
        foreach($variables as $var => $variable) {
            $$var = $variable;
        }
        require dirname(dirname(__FILE__)).'/view/'.  strtolower($this->name).'/'.$view.'.php';        
        $this->displayLayout();
    }
    
    /**
     * Insert le contenu de la vue dans le template
     */
    public function displayLayout() {
        $title = $this->headerTitle;
        $controller = $this->name;
        $content = ob_get_clean();        
        require dirname(dirname(__FILE__)).'/view/layout.php';
    }    
    
    /**
     * Retourne les variables POST
     * @return boolean
     */
    public function getPost() {
        if(isset($_POST)) {
            return $_POST;
        } else {
            return FALSE;
        }
    }
    
    public function getFiles() {
        if(isset($_FILES)) {
            return $_FILES;
        } else {
            return FALSE;
        }
    }
    
    /**
     * Redirige vers une page
     * @param string $controller : Nom du controller
     * @param string $view : Nom de la vue
     */
    public function redirect($controller, $view=NULL) {
        if($view) {
            header('Location:index.php?controller='.$controller.'&view='.$view);
        } else {
            header('Location:index.php?controller='.$controller);
        }
    }
}